#pragma once
#include "types.hpp"

class Sensor
{
public:
    Sensor();
    Sensor(int pixelX, int pixelY, double element, double fov, double tg, Point3d sensorCenter, 
        Vec3d sensorNormal);
public:
    int pixelX;
    int pixelY;
    double element;
    double fov;
    double tg;
    Point3d sensorCenter;
    Vec3d sensorNormal;
};


Sensor::Sensor()
{
    pixelX = 512;
    pixelY = 512;
    element = 5.0e-6;
    fov = 60;
    tg = 5.0e-9;
    sensorCenter = Point3d::Point3(0,0,0);
    sensorNormal = Vec3d::Point3(0,0,1);
}


Sensor::Sensor(int pixelX, int pixelY, double element, double fov, double tg, Point3d sensorCenter, 
        Vec3d sensorNormal)
{
    this->pixelX = pixelX;
    this->pixelY = pixelY;
    this->element = element;
    this->fov = fov;
    this->tg = tg;
    this->sensorCenter = sensorCenter;
    this->sensorNormal = sensorNormal;
}

